MySQL SQL 查询执行流程

流程图

MySQL 大体可分为 server 层与 存储引擎
file

流程解释

1、连接器

管理连接,权限验证,当一个连接权限验证通过后,即使你使用管理员对这个用户的权限做了修改,对已经通过验证的接连也不会生效。只有新连接才会使用新的权限

2、查询缓存

命中则直接返回结果,缓存以 key=>value 的形式储存,key 为 SQL 语句,value 为查询的结果,查询缓存当出现更新时,当前表的所有缓存将被清空。

Note:因查询缓存往往弊大于利 MySQL 8 及以上版本查询缓存已经被抛弃

3、分析器

对 SQL 进程词法语法分析,并验证表与查询的字段是否存在

4、优化器

对 SQL 进行索引选择

5、执行器

执行 SQL 语句,查询存储引擎,返回结果

原文连接https://time.geekbang.org/column/article/68319